Systems and methods for generating electronic meeting invitations in video communications and other services

ABSTRACT

A method and related apparatus for generating electronic meeting invitations in video communication and other services is described, including using an agent to automatically respond to electronic meeting invitations generated by users such that the response includes the generated connection information that will allow the intended participants to access the video communication or other service.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of PCT/US13/059313, filed Sep. 11,2013, and which claims priority to U.S. Provisional App. Ser. No.61/699A65, titled, “System and Method for Agent-Based Integration ofInstant Messaging and Video Communication Systems,” filed Sep. 11, 2012,the disclosures of which are incorporated herein by reference in theirentireties.

FIELD

The disclosed subject matter relates to electronic services that involvetwo or more participants and which require scheduling so that allparticipants are available to participate. Examples include video andaudio communication systems.

BACKGROUND INFORMATION

The disclosed subject matter relates to electronic services that involvetwo or more participants and which require scheduling so that allparticipants are available to participate. Examples include video andaudio communication systems.

This may be accomplished by traditional means, such as calling each useron the telephone. Today, with the ubiquitous availability of electronicemail and other messaging systems, it is much easier to simply send anemail to all participants.

Certain electronic messaging systems, such as Microsoft'sOutlook/Exchange, Apple's Mail/Calendar, and others, offer thecapability to create an electronic calendar invitation that is sent tothe intended participants via email. The invited users are given theoption of accepting the invitation, either definitely or tentatively, orrejecting the invitation, possibly adding their own comments to thereply. The reply is emailed back to the originator of the invitation,where it can be read as an email message. Replies are also automaticallyprocessed and are available in the calendar application, so that theoriginator can easily see how many of the invitees have responded andhow.

While the above mechanism may resolve the scheduling problem, onepractical consideration is that any additional information that may berequired for the application through which the users will be engaged hasto be manually inserted by the originator. This may involve the useraccessing a web page of the service, or some other document (e.g., adocument or database that the user maintains for his/her own use),finding the relevant information, and copying-and-pasting it in theinvitation. This may be cumbersome and error prone.

There are also instances where the information may not be available inadvance. For example, consider a free conferencing service offered toall users. It would be desirable for users to be able to access theservice without having to spend any configuration or set up time.

Commonly assigned International Patent Application No. PCT/US10/58801,“System and method for combining instant messaging and videocommunication systems,” incorporated herein by reference in itsentirety, describes mechanisms for integrating Instant Messaging (IM)systems and video communication systems by using URLs placed by users inthe IM system's chat window. Users who are not registered on, or loggedin to, the videoconferencing system can click on the URL to join asession. The system described therein can use a plug-in to be installedalongside the IM client software to enable communication between the twosystem components. It would be desirable to offer the same level ofseamless integration not just during the operation of a service, butalso for scheduling access to the service in the first place.

SUMMARY

Systems and methods for generating electronic meeting invitations foractivities or services where more than one person may be involved andwhich require additional configuration information that may not be knowna priori are disclosed herein. In one embodiment of the disclosedsubject matter, a user sends an electronic meeting invitation thatincludes in the list of invitees a special user that represents theactivity or service.

The invitation to the special user is processed by the system andanother invitation is generated for the same list of invitees as theoriginal, where any additional configuration information required forthe activity or service is included. In another embodiment, theprocessing of the original invitation generates an updated invitationthat supersedes the original invitation, if the electronic calendaringsystem allows such operation.

BRIEF DESCRIPTION OF THE DRAWINGS

Further features, the nature, and various advantages of the disclosedsubject matter will be more apparent from the following detaileddescription and the accompanying drawings in which:

FIGS. 1 and 1B is a schematic illustration of an exemplaryvideoconferencing system;

FIGS. 2A and 2B provides exemplary screen snapshots during the processof creating a room URL;

FIG. 3 is a schematic illustration of an exemplary system for generatingan electronic invitation for an exemplary videoconferencing system inaccordance with the principles of the disclosed subject matter;

FIG. 4 is a schematic illustration of the client system architecture inaccordance with the principles of the disclosed subject matter;

FIG. 5 depicts a screen snapshot from an exemplary meeting invitation;and

FIG. 6 shows an exemplary computer system in accordance with anembodiment of the disclosed subject matter.

The Figures are incorporated and constitute part of this disclosure.Throughout the Figures the same reference numerals and characters,unless otherwise stated, are used to denote like features, elements,components or portions of the illustrated embodiments. Moreover, whilethe disclosed subject matter will now be described in detail withreference to the Figures, it is done so in connection with theillustrative embodiments.

DETAILED DESCRIPTION

The disclosed subject matter describes a system that allows thegeneration of electronic meeting invitations for applications orservices that involve two or more people. The application or service mayrequire the simultaneous presence of the participants, as is the case,for example, in video and audio conferencing, interactive webinars, etc.Although the description of the disclosed subject matter uses video andaudio conferencing as an example, the disclosed subject matter issimilarly applicable to any service or activity that requires schedulingand which requires additional configuration information for users to beable to participate.

FIG. 1( a) depicts the architecture of an exemplary videoconferencingsystem 100. The system includes one or more VC Servers 120 and one ormore VC Clients 110. Three such clients are shown in the figure (A, B,and C), with a single VC Server for purposes of illustration—thedisclosed subject matter can be directly used in the case where multipleVC Servers 120 are present, and with any number of VC Clients. The VCClients 110 and the VC Server 120 are connected via network connections118 (A through C). In an embodiment, the IP protocol is used for theunderlying network. The VC Client 110 may be a standalone system such asa computer-based system with a camera and one or more displays, or itcan be software that is downloaded and run on a user's computer. The VCClient 110 can also be a web page that is loaded from the VC Server 120(or another server) onto a user's browser (e.g., when the browsersupports WebRTC).

FIG. 1( b) depicts the architecture of the VC Server 120. The server caninclude two components, a Portal 130 and a Core 140. In an embodiment,the Portal 130 is a web-based registration service, where users log inand through which they can initiate, receive, or controlvideoconferencing calls. The VC Server 120 also can include the Core 140module, which is the component that receives, processes, and forwardsmedia. As shown in the figure, the information carried over networkconnection 118 can be split between the Portal 130 and the Core 140,with media data flowing to/from the Core 140, and user/sessionmanagement data flowing to/from the Portal 130.

The Portal 130 and Core 140 may communicate through a connection 158.Although the VC Server is shown as a single unit, the Portal 130 andCore 140 can be hosted on distinct systems that may even be physicallyin different locations. In that case, the connection 158 can be over thenetwork, rather than being an internal connection within a singlesystem.

In an embodiment, the VC Server Core is a Scalable Video CommunicationServer (SVCS), as described in part in commonly assigned U.S. Pat. No.7,593,032, incorporated herein by reference in its entirety. AlternativeVC Server Core architectures include the traditional switchingMultipoint Control Unit (MCU) or the transcoding MCU, among others.

When the VC Clients 110 wish to use the services of the VC system, theyall should be connected to the VC Server 120, at the same time, and withappropriate access configuration. Services that allow users to interactmay provide an appropriate conceptual model for the interaction. Invideoconferencing systems the abstract concept of a virtual “room” isused, paralleling the process of a physical meeting that occurs withparticipants being in the same room in the same time.

In certain systems, logged in users are allowed to start upvideoconferencing calls and invite guest users to join them, even ifthey do not have log in privileges on the videoconferencing systemportal. These users can utilize a special URL generated by the portalfor the particular user that is conducting the videoconferencing call.The URL may be associated with the user's virtual room. Rooms may befreely accessible to registered users, unless protected by a PIN orpassword. In some videoconferencing systems, users may not be associatedwith fixed rooms, and room (or meeting place in general) associationsmay be created on demand by the server or portal hosting the conference.Accessing the room (or equivalent location-identifying) URL can enableanyone to log in as “guest” into the system, install the VC clientsoftware if not already installed and running, and connect to theconference call of the particular user. This can further enableregistered users to conduct conference calls with any user, whether heis registered on the VC system or not. Of course, URLs can also becreated that allow only registered users to access the service. The URLmay also be associated with a particular time slot, with a particularset of participating users, etc. Any such rules may be asserted at theVC Server 120 (for the videoconferencing system example) when the URL isaccessed by a VC Client 110.

The process of creating a room URL is shown in FIGS. 2( a) and (b) wherethe “My Account” page is shown as produced by an exemplary portal; inFIG. 2( a) there is no URL yet created, whereas in FIG. 2( b) the URLhas been created and is available for use.

The client software can automatically be provided through the portal, sothat the users do not have to pre-install software in advance of makinga call. The user may be prompted to download the software afterconnecting to the portal through the URL, if the software is not alreadyavailable and running on the user's computer.

We now describe the process of generating an electronic invitation toaccess a videoconferencing service such the one depicted in FIG. 1. FIG.3 depicts an exemplary configuration with two users. The system can workin an identical way if more than two users are involved. The system ofFIG. 3 shows two Clients 310A and 310B that wish to access the servicesof the VC Server 330 over corresponding network connections 318A and318B. In order to schedule a meeting the Clients 310 use the services ofa messaging and calendaring system, such as Microsoft Outlook or AppleMail and Calendar. The messaging service is represented in the figure bythe Messaging/Calendaring Server 320. Although a single messaging serveris shown, several servers may involve in the relaying of messages as,for example, in Internet email systems.

Messaging/Calendaring Server 320 over corresponding network connections315A and 315B, respectively. The network connections may be over thesame network as the ones providing access to the VC Server 330 (e.g.,over the public Internet), or they may be over a separate network.Examples include a private IP network, the text messaging system offeredby mobile telephone carriers (SMS), the BlackBerry Messenger service,etc., Apple's iMessage, etc.

FIG. 4 shows the Client system architecture in accordance with an aspectof the disclosed subject matter. The Client 400 contains aMessaging/Calendaring Client module 450 and a VC Client module 490. TheVC Client module 490 can operate as a VC Client in the same way as theVC Client(s) shown in FIG. 1. The Messaging/Calendaring Client module450 may be any messaging/calendaring application or set of applications,such as Microsoft Outlook/Exchange or Apple Mail/Calendar.

Notice that the Messaging/Calendar Client module 450 can communicatewith the Messaging/Calendar Server via the connection 415, whereas theVC client module 490 can communicate with the VC Server via theconnection 418. The VC Server interface through the connection 418 in anembodiment where the system is used is SOAP-based. Although the VCClient module 490 is shown here as part of the Client 400, it is notedthat this is only a logical association. The VC Client module 490 couldbe in the same computer system as the Messaging/Calendaring Client 450,or it could be in a different system, possibly even at a differentphysical location. That the VC Client module 490 communicates with therest of the system through connection 418 can make the actual physicallocation of the VC Client module 490 irrelevant. The VC Client module490 could be a standalone videoconferencing system. In this case, thevideoconference would run on a separate computer system than the IMClient 450, but the process of generating the electronic meetinginvitation, as disclosed below, can be identical.

With reference to FIG. 3, when one of the Clients 310, for exampleClient 310A, wishes to schedule a conference call, it creates a calendarinvitation which it then sends to all intended participants via themessaging system. The calendar invitation contains the list ofparticipants and their emails (needed by the messaging system in orderto route the messages), the day and time of the meeting, as well as anyadditional information that the initiating user may wish to include.

In order to avoid having the initiating user obtain the neededinformation in order to insert it to the meeting invitation, the VCSystem provides an Agent 350. The Agent 350 communicates with the VCServer 330 but it is also connected to the messaging system. FIG. 3depicts the Agent 350 connected to the Messaging/Calendaring Server 320over a network connection 315VC. The Agent 350 is identified in themessaging system as any other user. For example, in a system that usesInternet email it may have its own email address such as“video@abc.com”.

The initiating client Client 310A will include the messaging systemidentification of the Agent 350 into the invitation. In the Internetemail case, it can include the Agent 350′s email address in the calendarinvitation. The invitation will be received by all intendedparticipants, such as Client 310B, but it will also be received by Agent350. The Agent 350 can examine the invitation and, in coordination withthe VC Server 330, can respond to the meeting invitation as any otherparticipant, but including all information that is needed by theparticipants to access the service.

The meeting invitation includes all relevant information for allocatingservice resources: the number of users, their email address and theirnames, as well as the time and day of the meeting. If the initiatinguser is registered to the VC Server 330, the Agent 350 may generate aroom URL associated with the particular user. If the initiating user isnot registered on the VC Server 330, and if the VC Server 330 offers itsservices for free, then the Agent 350 can allocate a specific URL forthe particular meeting.

As mentioned earlier, the generated room URL may encode any number ofinformation, including a list of participants, the time and day of themeeting, etc. This information may be encoded in such a way that it isnot human-readable, and may also feature tamper-detection information(e.g., CRC digits) to avoid arbitrary modification by a user.

After the Agent 350 and the VC Server 330 create the appropriate roomURL, the Agent 350 can respond to the invitation in a number of ways. Ifthe messaging system allows updates of the original invitation, theAgent 350 may respond by accepting the invitation and providing itsconnection information as updated comments. The updated comments mayinclude the room URL information and any other connection information.but also information messages such as “Thank you for using our services.For support call the following number.”, etc. FIG. 5 shows a screensnapshot from an exemplary meeting invitation (generated from MicrosoftOutlook for Mac 2011). The response may be sent only to the originator,or to all intended participants, depending on the capabilities of themessaging/calendaring system.

If the messaging system does not allow updates of the originalinvitation, the Agent 350 may respond by accepting the invitation, andby emailing the connection information to the meeting originator, or toall intended participants. The originator may then have to copy andpaste the information to his or her calendar entry and send an update toall intended participants.

If, for some reason, the Agent 350 does not authorize access to the VCServer 330 (due to lack of capacity, access credentials, etc.), it cansimply reject the invitation by sending the appropriate meetinginvitation response. As an example, the VC Server 330 can track theprojected load based on the number of scheduled sessions and the numberof users, and decide if it has the capacity to provide additionalservice for the day and time requested.

Since the meeting invitation may contain the URL generated by the Agent350, any future updates of the meeting invitation, such as a change ofday or time, or participants, should contain the original URL. The Agent350 can parse incoming meeting invitations to see if they alreadycontain its own generated URLs. If the invitation does include such aUAL, the Agent 350 may use the information encoded in the URL toidentify the originally allocated session, examine if the modificationis acceptable, and respond accordingly. The Agent 350 may also trackunique identifiers provided by the Messaging/Calendaring System for thesame purpose. It may also insert its own unique identifiers as well.

The methods for generating electronic meeting invitations in videocommunication and other services, described above, can be implemented ascomputer software using computer-readable instructions and physicallystored in computer-readable medium. The computer software can be encodedusing any suitable computer languages. The software instructions can beexecuted on various types of computers. For example, FIG. 6 illustratesa computer system 600 suitable for implementing embodiments of thepresent disclosure.

The components shown in FIG. 6 for computer system 600 are exemplary innature and are not intended to suggest any limitation as to the scope ofuse or functionality of the computer software implementing embodimentsof the present disclosure. Neither should the configuration ofcomponents be interpreted as having any dependency or requirementrelating to any one or combination of components illustrated in theexemplary embodiment of a computer system. Computer system 600 can havemany physical forms including an integrated circuit, a printed circuitboard, a small handheld device (such as a mobile telephone or PDA), apersonal computer or a super computer.

Computer system 600 includes a display 632, one or more input devices633 (e.g., keypad, keyboard, mouse, stylus, etc.), one or more outputdevices 634 (e.g., speaker), one or more storage devices 635, varioustypes of storage medium 636.

The system bus 640 link a wide variety of subsystems. As understood bythose skilled in the art, a “bus” refers to a plurality of digitalsignal lines serving a common function. The system bus 640 can be any ofseveral types of bus structures including a memory bus, a peripheralbus, and a local bus using any of a variety of bus architectures. By wayof example and not limitation, such architectures include the IndustryStandard Architecture (ISA) bus, Enhanced ISA (EISA) bus, the MicroChannel Architecture (MCA) bus, the Video Electronics StandardsAssociation local (VLB) bus, the Peripheral Component Interconnect (PCI)bus, the PCI-Express bus (PCI-X), and the Accelerated Graphics Port(AGP) bus.

Processor(s) 601 (also referred to as central processing units, or CPUs)optionally contain a cache memory unit 602 for temporary local storageof instructions, data, or computer addresses. Processor(s) 601 arecoupled to storage devices including memory 603. Memory 603 includesrandom access memory (RAM) 604 and read-only memory (ROM) 605. As iswell known in the art, ROM 605 acts to transfer data and instructionsuni-directionally to the processor(s) 601, and RAM 604 is used typicallyto transfer data and instructions in a bi-directional manner. Both ofthese types of memories can include any suitable of thecomputer-readable media described below.

A fixed storage 608 is also coupled bi-directionally to the processor(s)601, optionally via a storage control unit 607. It provides additionaldata storage capacity and can also include any of the computer-readablemedia described below. Storage 608 can be used to store operating system609, EXECs 610, application programs 612, data 611 and the like and istypically a secondary storage medium (such as a hard disk) that isslower than primary storage. It should be appreciated that theinformation retained within storage 608, can, in appropriate cases, beincorporated in standard fashion as virtual memory in memory 603.

Processor(s) 601 is also coupled to a variety of interfaces such asgraphics control 621, video interface 622, input interface 623, outputinterface 624, storage interface 625, and these interfaces in turn arecoupled to the appropriate devices. In general, an input/output devicecan be any of: video displays, track balls, mice, keyboards,microphones, touch-sensitive displays, transducer card readers, magneticor paper tape readers, tablets, styluses, voice or handwritingrecognizers, biometrics readers, or other computers. Processor(s) 601can be coupled to another computer or telecommunications network 630using network interface 620. With such a network interface 620, it iscontemplated that the CPU 601 might receive information from the network630, or might output information to the network in the course ofperforming the above-described method. Furthermore, method embodimentsof the present disclosure can execute solely upon CPU 601 or can executeover a network 630 such as the Internet in conjunction with a remote CPU601 that shares a portion of the processing.

According to various embodiments, when in a network environment, i.e.,when computer system 600 is connected to network 630, computer system600 can communicate with other devices that are also connected tonetwork 630. Communications can be sent to and from computer system 600via network interface 620. For example, incoming communications, such asa request or a response from another device, in the form of one or morepackets, can be received from network 630 at network interface 620 andstored in selected sections in memory 603 for processing. Outgoingcommunications, such as a request or a response to another device, againin the form of one or more packets, can also be stored in selectedsections in memory 603 and sent out to network 630 at network interface620. Processor(s) 601 can access these communication packets stored inmemory 603 for processing.

In addition, embodiments of the present disclosure further relate tocomputer storage products with a computer-readable medium that havecomputer code thereon for performing various computer-implementedoperations. The media and computer code can be those specially designedand constructed for the purposes of the present disclosure, or they canbe of the kind well known and available to those having skill in thecomputer software arts. Examples of computer-readable media include, butare not limited to: magnetic media such as hard disks, floppy disks, andmagnetic tape; optical media such as CD-ROMs and holographic devices;magneto-optical media such as optical disks; and hardware devices thatare specially configured to store and execute program code, such asapplication-specific integrated circuits (ASICs), programmable logicdevices (PLDs) and ROM and RAM devices. Examples of computer codeinclude machine code, such as produced by a compiler, and filescontaining higher-level code that are executed by a computer using aninterpreter. Those skilled in the art should also understand that term“computer readable media” as used in connection with the presentlydisclosed subject matter does not encompass transmission media, carrierwaves, or other transitory signals.

As an example and not by way of limitation, the computer system havingarchitecture 600 can provide functionality as a result of processor(s)601 executing software embodied in one or more tangible,computer-readable media, such as memory 603. The software implementingvarious embodiments of the present disclosure can be stored in memory603 and executed by processor(s) 601. A computer-readable medium caninclude one or more memory devices, according to particular needs.Memory 603 can read the software from one or more othercomputer-readable media, such as mass storage device(s) 635 or from oneor more other sources via communication interface. The software cancause processor(s) 601 to execute particular processes or particularparts of particular processes described herein, including defining datastructures stored in memory 603 and modifying such data structuresaccording to the processes defined by the software. In addition or as analternative, the computer system can provide functionality as a resultof logic hardwired or otherwise embodied in a circuit, which can operatein place of or together with software to execute particular processes orparticular parts of particular processes described herein. Reference tosoftware can encompass logic, and vice versa, where appropriate.Reference to a computer-readable media can encompass a circuit (such asan integrated circuit (IC)) storing software for execution, a circuitembodying logic for execution, or both, where appropriate. The presentdisclosure encompasses any suitable combination of hardware andsoftware.

While this disclosure has described several exemplary embodiments, thereare alterations, permutations, and various substitute equivalents, whichfall within the scope of the disclosure. It will thus be appreciatedthat those skilled in the art will be able to devise numerous systemsand methods which, although not explicitly shown or described herein,embody the principles of the disclosure and are thus within the spiritand scope thereof.

What is claimed is:
 1. A system for generating electronic meetinginvitations to access a service over a network, the system comprising:one or more messaging clients; one or more messaging servers coupled tothe one or more messaging clients over a messaging network; one or moreservers providing the service; an agent coupled to the one or moreservers over the network and coupled to the one or more messagingservers over the messaging network; wherein the agent is configured torespond to an electronic meeting invitation received from one of the oneor more messaging clients by either: generating connection information,placing the generated connection information in an electronic meetinginvitation acceptance, and sending the electronic meeting invitationacceptance, if the service can be provided; or sending an electronicmeeting invitation rejection, if the service can not be provided.
 2. Thesystem of claim 1, wherein the messaging network and the network are thesame network,
 3. The system of claim 1, wherein the electronic meetinginvitation acceptance or electronic meeting invitation rejection is sentto the one of the one or more messaging clients from which theelectronic meeting invitation was received.
 4. The system of claim 1,wherein the electronic meeting invitation acceptance or electronicmeeting invitation rejection is sent to all messaging clients identifiedin the electronic meeting invitation.
 5. The system of claim 1, whereinthe agent is further configured to send the generated connectioninformation to the messaging clients identified in the electronicmeeting invitation by placing the generated connection information in aregular message and sending it to the messaging clients identified inthe electronic meeting invitation.
 6. The system of claim 1, wherein theagent is further configured to send the generated connection informationto the messaging client from which the electronic meeting invitation wasreceived by placing the generated connection information in a regularmessage and sending it to the messaging client from which the electronicmeeting invitation was received.
 7. The system of claim 1, wherein theagent is further configured to parse the electronic meeting invitationin order to detect if it already contains connection informationgenerated by it and, if it does, to combine the contained connectioninformation with the information provided by the electronic meetinginvitation, prior to deciding if the service can be offered and prior togenerating the connection information.
 8. A method for generatingelectronic meeting invitations to access a service over a network usingmessaging clients coupled with one or more messaging servers over amessaging network, the method comprising: providing an agent to the oneor more servers and one or more messaging servers; receiving, at theagent, an electronic meeting invitation; at the agent, deciding if theservice can be provided and, if not, sending an electronic meetinginvitation rejection; whereas if the service can be provided, generatingconnection information, placing the generated connection information inan electronic meeting invitation acceptance, and sending the electronicmeeting invitation acceptance.
 9. The method of claim 8, wherein themessaging network and the network are the same network.
 10. The methodof claim 8, wherein the electronic meeting invitation acceptance orelectronic meeting invitation rejection is sent to the one of the one ormore messaging clients from which the electronic meeting invitation wasreceived.
 11. The method of claim 8, wherein the electronic meetinginvitation acceptance or electronic meeting invitation rejection is sentto all messaging clients identified in the electronic meetinginvitation.
 12. The method of claim 8, wherein the agent is furtherconfigured to send the generated connection information to the messagingclients identified in the electronic meeting invitation by placing thegenerated connection information in a regular message and sending it tothe messaging clients identified in the electronic meeting invitation.13. The method of claim 8, wherein the agent is further configured tosend the generated connection information to the messaging client fromwhich the electronic meeting invitation was received by placing thegenerated connection information in a regular message and sending it tothe messaging client from which the electronic meeting invitation wasreceived.
 14. The method of claim 8, wherein the agent is furtherconfigured to parse the electronic meeting invitation in order to detectif it already contains connection information generated by it and, if itdoes, to combine the contained connection information with theinformation provided by the electronic meeting invitation, prior todeciding if the service can be offered and prior to generating theconnection information.
 15. A non-transitory computer readable mediumcomprising a set of executable instructions to direct a processor toperform the method of claim
 8. 16. A non-transitory computer readablemedium comprising a set of executable instructions to direct a processorto perform the method of claim 9
 17. A non-transitory computer readablemedium comprising a set of executable instructions to direct a processorto perform the method of claim
 10. 18. A non-transitory computerreadable medium comprising a set of executable instructions to direct aprocessor to perform the method of claim
 11. 19. A non-transitorycomputer readable medium comprising a set of executable instructions todirect a processor to perform the method of claim
 12. 20. Anon-transitory computer readable medium comprising a set of executableinstructions to direct a processor to perform the method of claim 13.21. A non-transitory computer readable medium comprising a set ofexecutable instructions to direct a processor to perform the method ofclaim 14.